package com.lekang.system.service;

import java.util.List;
import com.lekang.system.domain.CaregiverBedBinding;

/**
 * 护理员与床位中间Service接口
 *
 * @author zhihao
 * @date 2025-10-15
 */
public interface ICaregiverBedBindingService
{
    /**
     * 查询护理员与床位中间
     *
     * @param id 护理员与床位中间主键
     * @return 护理员与床位中间
     */
    public CaregiverBedBinding selectCaregiverBedBindingById(Long id);

    /**
     * 查询护理员与床位中间列表
     *
     * @param caregiverBedBinding 护理员与床位中间
     * @return 护理员与床位中间集合
     */
    public List<CaregiverBedBinding> selectCaregiverBedBindingList(CaregiverBedBinding caregiverBedBinding);

    /**
     * 新增护理员与床位中间
     *
     * @param caregiverBedBinding 护理员与床位中间
     * @return 结果
     */
    public int insertCaregiverBedBinding(CaregiverBedBinding caregiverBedBinding);

    /**
     * 修改护理员与床位中间
     *
     * @param caregiverBedBinding 护理员与床位中间
     * @return 结果
     */
    public int updateCaregiverBedBinding(CaregiverBedBinding caregiverBedBinding);

    /**
     * 批量删除护理员与床位中间
     *
     * @param ids 需要删除的护理员与床位中间主键集合
     * @return 结果
     */
    public int deleteCaregiverBedBindingByIds(Long[] ids);

    /**
     * 删除护理员与床位中间信息
     *
     * @param id 护理员与床位中间主键
     * @return 结果
     */
    public int deleteCaregiverBedBindingById(Long id);

    /**
     * 根据床位ID查询护理员绑定信息
     *
     * @param bedId 床位ID
     * @return 护理员绑定信息列表
     */
    public List<CaregiverBedBinding> selectByBedId(Long bedId);

    /**
     * 根据床位ID列表查询护理员绑定信息
     *
     * @param bedIds 床位ID列表
     * @return 护理员绑定信息列表
     */
    public List<CaregiverBedBinding> selectByBedIds(List<Long> bedIds);

    /**
     * 设置床位护理员
     *
     * @param bedId 床位ID
     * @param caregiverIds 护理员ID列表
     * @return 结果
     */
    public boolean setBedCaregivers(Long bedId, List<Long> caregiverIds);

    /**
     * 批量设置床位护理员
     *
     * @param bedIds 床位ID列表
     * @param caregiverIds 护理员ID列表
     * @return 结果
     */
    public boolean batchSetBedCaregivers(List<Long> bedIds, List<Long> caregiverIds);

    /**
     * 移除床位的护理员
     *
     * @param bedId 床位ID
     * @param caregiverId 护理员ID
     * @return 结果
     */
    public boolean removeBedCaregiver(Long bedId, Long caregiverId);
}